package com.example.cloud.service.business.reservation;

import com.example.cloud.model.business.reservation.Reservation;
import com.example.cloud.model.dto.QueryModel;
import com.example.cloud.model.dto.Result;
import com.example.cloud.model.system.SystemConfig;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * Created by wangtao on 2018/5/17.
 */
public interface ReservationService {
    List<Reservation> findByAppointment(Long patientId, String startDate, String endDate);
    Result doGenerateAppointment(Map map);
    void doSave(List<Reservation> record) throws ParseException;
    Result doCheckChange(Long id);
    void doChange(Reservation record) throws ParseException;
    List<Long> doCheckDelete(List<Long> ids);
    void doDelete(List<Long> ids);
    Result searchReservation(Map params);
    Result searchVisit(Map params);
    Result searchComplete(int process, QueryModel q);
    Result searchUndone(int process, QueryModel q);
    Result searchRefuseTreat(QueryModel q);
    void doSupport(Reservation record);
    void doAppointment(Reservation record);
    boolean doCheckCancel(Long id);
    void doCancel(Long id);
    boolean doCheckArrived(Long id);
    void doArrived(Long id);
    boolean doCheckAdmission(Long id);
    void doAdmission(Long id);
    void doTreatComplete(Long id);
    void doVisitComplete(Long id);
    boolean doCheckComplete(Long id);
    void doComplete(Long id);
    void doVisitConfirm(Long id);
    void doEditNote(Long id, String note);
    Result doCheckAppointment(Reservation record, SystemConfig config) throws ParseException;
    void sendPreview();
    void doConfirm(Long id);
}
